home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / t_os / demo / ugo / ugo.asm next >
Encoding:
Assembly Source File  |  1994-11-16  |  2.4 KB  |  103 lines

  1. 10 ';
  2. 20 '; ガールゴーゴー  ~CG上に実写の合成~
  3. 30 ';
  4. 40 ';                        PROGRAMED BY Ushio 1994.4.1
  5. 50 ';
  6. 60 '; 対象機種 FMTOWNS     ビデオカード
  7. 70 '; 開発環境 FMTOWNSIICX ビデオカード2A FB386V2.1L10 NA386V1.04
  8. 80 ';
  9. 90 '; 制作日誌
  10. 100 ';   1994. 4. 1  作り始めた.
  11. 110 ';               NA386をサブルーチン化
  12. 120 ';   1994. 4. 4  アセンブラのループの雛形を作る.
  13. 130 ';               CALLM(AD&)をCALL(AD&)としてしまい動かず.
  14. 140 ';               セグメントオーバーライドをつけ忘れ暴走.
  15. 150 ';               jnzをjzとしてしまい動かず.
  16. 160 ';   1994. 4. 7  ほぼ出来た.
  17. 170 ';   1994. 8.20  フリコレ応募用にソース修正
  18. 180 '
  19. 190 'para1  equ  dword ptr [esp+ 4]
  20. 200 '  
  21. 210 'hidariueadr equ 0
  22. 220 'xlength     equ 320  
  23. 230 'ylength     equ 240
  24. 240 '
  25. 250 ';dim HikakuCG%(320*240)
  26. 260 ';ret=callm(ugo&,varptr(HikakuCG%(0)))
  27. 270 '  
  28. 280 'complevel_b equ 4
  29. 290 'complevel_r equ 4
  30. 300 'complevel_g equ 4
  31. 310 '  
  32. 320 'temp1   equ ax
  33. 330 'temp2   equ dx
  34. 340 'vramadr equ edi
  35. 350 'backadr equ esi
  36. 360 'xcount  equ ecx  
  37. 370 'ycount  equ ebp ;dword ptr [ycountw]
  38. 380 '  
  39. 390 '  mov  ax,1ch
  40. 400 '  mov  fs,ax
  41. 410 '  mov  vramadr,hidariueadr
  42. 420 '  mov  backadr,para1
  43. 430 '  
  44. 440 '  mov  ycount,ylength
  45. 450 '#yloop:
  46. 460 '  
  47. 470 '  mov  xcount,xlength
  48. 480 '#xloop:
  49. 490 '  
  50. 500 '  mov  temp1,fs:[vramadr*2+256*1024]
  51. 510 '  and  temp1,1fh
  52. 520 '  mov  temp2,[backadr]
  53. 530 '  and  temp2,1fh
  54. 540 '  sub  temp1,temp2
  55. 550 '  jns  #a
  56. 560 '  neg  temp1
  57. 570 '#a:  
  58. 580 '  cmp  temp1,complevel_b
  59. 590 '  jg   #hitome
  60. 600 '  
  61. 610 '  mov  temp1,fs:[vramadr*2+256*1024]
  62. 620 '  and  temp1,3e0h
  63. 630 '  mov  temp2,[backadr]
  64. 640 '  and  temp2,3e0h
  65. 650 '  sub  temp1,temp2
  66. 660 '  jns  #b
  67. 670 '  neg  temp1
  68. 680 '#b:  
  69. 690 '  cmp  temp1,complevel_r*20h
  70. 700 '  jg   #hitome
  71. 710 '  
  72. 720 '  mov  temp1,fs:[vramadr*2+256*1024]
  73. 730 '  and  temp1,7c00h
  74. 740 '  mov  temp2,[backadr]
  75. 750 '  and  temp2,7c00h
  76. 760 '  sub  temp1,temp2
  77. 770 '  jns  #c
  78. 780 '  neg  temp1
  79. 790 '#c:  
  80. 800 '  cmp  temp1,complevel_g*400h
  81. 810 '  jg   #hitome
  82. 820 '  
  83. 830 ';#tome:    
  84. 840 '  and  word ptr fs:[vramadr*2],7fffh
  85. 850 '  jmp  short #d
  86. 860 '#hitome:  
  87. 870 '  or   word ptr fs:[vramadr*2],8000h
  88. 880 '#d:  
  89. 890 '  
  90. 900 '  inc  vramadr
  91. 910 '  add  backadr,2
  92. 920 '  dec  xcount
  93. 930 '  jnz  #xloop
  94. 940 '  
  95. 950 '  add  vramadr,512-xlength
  96. 960 '  dec  ycount
  97. 970 '  jnz  #yloop
  98. 980 '  
  99. 990 '  mov  eax,0
  100. 1000 '  ret
  101. 1010 '  
  102. 1020 '  end
  103.